package demo4;

import java.lang.reflect.Proxy;

public class JDKProxyFactory {

    public static <T>T create(Object target){//User user = new User();  ==> User user=JDKProxyFactory.create(new User())
        JDKInvocationHandler handler =new JDKInvocationHandler(target);

        //动态代理: 基于反射在程序运行的过程中生成字节码文件(.class)
        //JVM 在程序运行的时候 返回生 成好的代理对象
        return (T) Proxy.newProxyInstance(target.getClass().getClassLoader()
                                    ,target.getClass().getInterfaces()
                                    ,handler
                );

    }
}
